
//n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上，并且使皇后彼此之间不能相互攻击。 
//
// 给你一个整数 n ，返回所有不同的 n 皇后问题 的解决方案。 
//
// 
// 
// 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案，该方案中 'Q' 和 '.' 分别代表了皇后和空位。 
//
// 
//
// 示例 1： 
//
// 
//输入：n = 4
//输出：[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]
//解释：如上图所示，4 皇后问题存在两个不同的解法。
// 
//
// 示例 2： 
//
// 
//输入：n = 1
//输出：[["Q"]]
// 
//
// 
//
// 提示： 
//
// 
// 1 <= n <= 9 
// 皇后彼此不能相互攻击，也就是说：任何两个皇后都不能处于同一条横行、纵行或斜线上。 
// 
// 
// 
// Related Topics 数组 回溯 
// 👍 1020 👎 0

package leetcode.editor.cn;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

/**
  * 题目Id：51
  * 题目：N 皇后
  * 日期：2021-09-27 10:44:47
*/
public class NQueens {
    public static void main(String[] args) {
        Solution solution = new NQueens().new Solution();
    }
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {

    List<List<String>>  lists= new  LinkedList<> ();
    Set<Integer> lie = new HashSet<>();
    Set<Integer> pie = new HashSet<>();
    Set<Integer> na= new HashSet<>();
    public List<List<String>> solveNQueens(int n) {

        return lists;
    }

    public void dfs(int n,int y,String result,List<String> list){
       if (y==n){
           list.add(result);
           return;
       }
       for (int x=0;x<n;x++){
           if (lie.contains(x)||pie.contains(x+y)||lie.contains(y-x)){
               result=result+".";
               continue;
           }else {

           }


       }



    }


}
//leetcode submit region end(Prohibit modification and deletion)

}    
